﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace IURIP
{
    /// <summary>
    /// The IActionTemplate interface. An actionTemplate correspond to the action defined in configuration file
    /// </summary>
    public interface IActionTemplate : ITemplate
    {
        /// <summary>
        /// Gets or sets filter defined to get original data
        /// </summary>
        IFilter Filter { get; }
        /// <summary>
        /// Gets the action name
        /// </summary>
        string Name { get; }
        /// <summary>
        /// Gets which nesting node in target data the action works on 
        /// </summary>
        string ParentXPath { get; }
        /// <summary>
        /// Gets which data block the action works on
        /// </summary>
        string ReferenceDataBlock { get; }
        /* Recur will be executed in Rule
        /// <summary>
        /// Gets or sets Recursive Filter defined to get original data
        /// </summary>
        IFilter RecursiveFilter { get; }
        /// <summary>
        /// Gets if the action is recursive or not
        /// </summary>
        bool IsRecursive { get; }
        /// <summary>
        /// Gets the reference name of recursion list node
        /// </summary>
        string RecursiveReference { get; }
        /// <summary>
        /// Gets the id field in the recurReference node, it is used to check the item is repeated or not
        /// </summary>
        string RecursiveIdentifiedKey { get; }
         */
    }
}
